\begin{breakablealgorithm}
    \renewcommand{\algorithmicrequire}{\textbf{Input:}}
	\renewcommand{\algorithmicensure}{\textbf{Output:}}
    \setstretch{0.95} %设置具有指定弹力的橡皮长度（原行宽的1.35倍）
	\caption{Fuzzy Rough C-Means}
    \label{algo:FRCM}
    \begin{algorithmic}[1] % 控制是否有序号
        \Require  An IS $S=\left\{ U,A,V,F \right\}$,Number of clusters $k$, Fuzzy factor $m$,Convergence threshold $\varepsilon$,Maximim number of iterations $m_i$, $\sigma$; % input 的内容
	    \Ensure Membership matrix $M$ and cluster center set $CCS$.   % output 的内容
        
        \State Randomly initialize $M$ and $CCS$;
        \For {$i\gets 1;i\le |X|; i++$} 
            \For {$j\gets 1;j\le |X|; j++$}
                \State $kernel\_matrix[i,j] \gets \exp{\left(-\frac{\fan{X[i] - X[j]}^2}{2\sigma^2}\right)}$
            \EndFor 
        \EndFor  
        \For {$i\gets 1;i\le m_i;i++$ }
            \State $M\_old \gets M$
            \State $ClusterAssment \gets zeros(|X|,1)$
            \For {$j\gets 1;j\le |X|;j++$}
                \State $ul\_list\gets zeros(|X|,1)$
                \For {$g\gets 1;g\le k;g++$ } 
                    \State $ul\_list.append\left( FRD(X[j],C_g) \right)$
                \EndFor 
                \State $MinIndex\gets ul\_list.index(\min(ul\_list))$
                \State $ClusterAssment[j]\gets MinIndex$
            \EndFor 
            \For{$j\gets 1;j\le k;j++$ }
                \State $PointsIncluster \gets X[ClusterAssment=j]$
                \State $C_j\gets {\rm mean}(PointsIncluster)$
            \EndFor 
            \For {$j\gets 1; j\le |X|;j++$ }  
                \For{$t\gets 1;t\le k;t++$ }
                    \State $M[j,t]\gets \left( \sum_{g=1}^{k}\left( \frac{\fan{x_i-c_j}^2}{\fan{x_i-c_g}^2} \right)^{(\frac{1}{m-1})} \right)^{-1}$
                \EndFor 
            \EndFor 
            \If{$|M\_old - M|<\varepsilon$ }
                \State break 
            \EndIf 
        \EndFor



        \State \textbf{return} $M,\mathbb{C} =\left\{ C_1,C_2,\cdots,C_k \right\}$.
    \end{algorithmic}
\end{breakablealgorithm}